package com.ruoyi.system.service.impl;

import java.util.Date;
import java.util.List;

import com.ruoyi.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.StoreMapper;
import com.ruoyi.system.domain.Store;
import com.ruoyi.system.service.IStoreService;
import com.ruoyi.common.core.text.Convert;

/**
 * 店铺信息Service业务层处理
 *
 * @author zhaohs
 * @date 2020-12-31
 */
@Service
public class StoreServiceImpl implements IStoreService {
    @Autowired
    private StoreMapper storeMapper;

    /**
     * 查询店铺信息
     *
     * @param id 店铺信息ID
     * @return 店铺信息
     */
    @Override
    public Store selectStoreById(Long id) {
        return storeMapper.selectStoreById(id);
    }

    /**
     * 查询店铺信息列表
     *
     * @param store 店铺信息
     * @return 店铺信息
     */
    @Override
    public List<Store> selectStoreList(Store store) {
        return storeMapper.selectStoreList(store);
    }

    @Override
    public List<Store> selectStoreListByUserId(Long userId) {
        Store store = new Store();
        store.setUserId(userId);
        return storeMapper.selectStoreList(store);
    }

    /**
     * 新增店铺信息
     *
     * @param store 店铺信息
     * @return 结果
     */
    @Override
    public int insertStore(Store store) {
        return storeMapper.insertStore(store);
    }

    @Override
    public int insertStoreByApp(Long userId, String storeName, String storeAddress, String tel, String contact, String imgUrl,String storeImg) {
        Store store = new Store();
        store.setUserId(userId);
        store.setContacts(contact);
        store.setStoreName(storeName);
        store.setImgUrl(imgUrl);
        store.setStoreTel(tel);
        store.setStoreAddress(storeAddress);
        store.setStoreStatus(0);
        store.setStoreMaster(1);
        store.setCreateDate(new Date());
        store.setStoreImg(storeImg);
        return storeMapper.insertStore(store);
    }

    @Override
    public int updateStoreByApp(Long id, String storeName, String storeAddress, String tel, String contact, String imgUrl,String storeImg) {
        Store store = new Store();
        store.setId(id);
        if(StringUtils.isNotEmpty(contact)){
            store.setContacts(contact);
        }

        if(StringUtils.isNotEmpty(storeName)){
            store.setStoreName(storeName);
        }

        if(StringUtils.isNotEmpty(imgUrl)){
            store.setImgUrl(imgUrl);
        }

        if(StringUtils.isNotEmpty(tel)){
            store.setStoreTel(tel);
        }

        if(StringUtils.isNotEmpty(storeAddress)){
            store.setStoreAddress(storeAddress);
        }

        if(StringUtils.isNotEmpty(storeImg)){
            store.setStoreImg(storeImg);
        }

        return storeMapper.updateStore(store);
    }

    /**
     * 修改店铺信息
     *
     * @param store 店铺信息
     * @return 结果
     */
    @Override
    public int updateStore(Store store) {
        return storeMapper.updateStore(store);
    }

    @Override
    public int updateStoreName(String storeName, Long storeId) {
        Store store = new Store();
        store.setId(storeId);
        store.setStoreName(storeName);
        return storeMapper.updateStore(store);
    }

    @Override
    public int updateStoreTel(String storeTel, Long storeId) {
        Store store = new Store();
        store.setId(storeId);
        store.setStoreTel(storeTel);
        return storeMapper.updateStore(store);
    }

    @Override
    public int updateStoreAddress(String storeAddress, Long storeId) {
        Store store = new Store();
        store.setId(storeId);
        store.setStoreAddress(storeAddress);
        return storeMapper.updateStore(store);
    }

    @Override
    public int updateStoreContact(String storeContact, Long storeId) {
        Store store = new Store();
        store.setId(storeId);
        store.setContacts(storeContact);
        return storeMapper.updateStore(store);
    }

    @Override
    public int updateStoreMaster(Long storeId) {
        Store store = new Store();
        Store item = storeMapper.selectStoreById(storeId);
        store.setStoreMaster(0);
        store.setUserId(item.getUserId());
        storeMapper.updateStore(store);
        Store store2 = new Store();
        store2.setId(storeId);
        store2.setStoreMaster(1);
        return storeMapper.updateStore(store2);
    }

    @Override
    public int updateStoreImg(String storeImg, Long storeId) {
        Store store = new Store();
        store.setId(storeId);
        store.setImgUrl(storeImg);
        return storeMapper.updateStore(store);
    }

    /**
     * 删除店铺信息对象
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteStoreByIds(String ids) {
        return storeMapper.deleteStoreByIds(Convert.toStrArray(ids));
    }

    /**
     * 删除店铺信息信息
     *
     * @param id 店铺信息ID
     * @return 结果
     */
    @Override
    public int deleteStoreById(Long id) {
        return storeMapper.deleteStoreById(id);
    }
}